// pages/user-scan/user-scan.js
const app = getApp()

Page({
  data: {
    scanResult: '',
    scanHistory: [],
    loading: false
  },

  onLoad() {
    this.loadScanHistory()
  },

  onShow() {
    this.loadScanHistory()
  },

  // 扫码
  scanCode() {
    wx.scanCode({
      success: (res) => {
        this.setData({
          scanResult: res.result
        })
        this.processScanResult(res.result)
      },
      fail: (err) => {
        console.error('扫码失败:', err)
        wx.showToast({
          title: '扫码失败',
          icon: 'none'
        })
      }
    })
  },

  // 处理扫码结果
  processScanResult(result) {
    this.setData({
      loading: true
    })

    app.userRequest({
      url: '/processScanCode',
      method: 'POST',
      data: {
        scan_code: result
      }
    }).then((res) => {
      wx.showToast({
        title: '扫码成功',
        icon: 'success'
      })
      
      // 刷新扫码历史
      this.loadScanHistory()
      
      // 如果有任务信息，跳转到报工页面
      if (res.data && res.data.allocation_id) {
        setTimeout(() => {
          wx.navigateTo({
            url: `/pages/user-report/user-report?allocation_id=${res.data.allocation_id}`
          })
        }, 1500)
      }
    }).catch((err) => {
      console.error('处理扫码结果失败:', err)
      wx.showToast({
        title: '处理扫码失败',
        icon: 'none'
      })
    }).finally(() => {
      this.setData({
        loading: false
      })
    })
  },

  // 加载扫码历史
  loadScanHistory() {
    app.userRequest({
      url: '/getScanHistory'
    }).then((res) => {
      this.setData({
        scanHistory: res.data || []
      })
    }).catch((err) => {
      console.error('获取扫码历史失败:', err)
    })
  },

  // 清空扫码结果
  clearScanResult() {
    this.setData({
      scanResult: ''
    })
  }
}) 